package com.caiheng.api.entity.event;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 保洁、绿化区域：添加保洁计划选择对象 event_clean_area
 *
 * @author ruoyi
 * @date 2023-12-26
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("event_clean_area")
public class EventCleanArea implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * $column.columnComment
     */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;

    /**
     * 所在物业id
     */
    private Integer propertyId;

    /**
     * 所在小区id
     */
    private Integer estateId;

    /**
     * 保洁区域名称
     */
    private String areaTitle;

    /**
     * 区域范围: 多个逗号分隔 （绿化范围只选择设备设施的，保洁的选择楼栋+设施设备）
     */
    private String areaRange;

    /**
     * 区域类型 ： 0 - 保洁   1 - 消杀  2 - 绿化
     */
    private Integer areaType;

    /**
     *  位置信息
     */
    private String address;


    /**
     * 经度
     */
    private BigDecimal lng;

    /**
     * 纬度
     */
    private BigDecimal lat;

    /**
     * 区域标准id
     */
    private Integer surveyStandardId;


    /**
     * 区域内容模板id
     */
    private Integer surveyTemplateId;


    /**
     * 备注信息
     */
    private String remark;

    /**
     * 状态  0  - 未启用  1 - 已启用
     */
    private Integer state;

    /**
     * 添加时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 添加人id
     */
    @TableField(fill = FieldFill.INSERT)
    private Integer createBy;


//    @TableField(exist = false)
//    private List<EstateBuildFloor> floorList;


    /**
     *  完成人姓名
     */
    @TableField(exist = false)
    private String sysUserName;

    @TableField(exist = false)
    private Integer opState;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private Date handleTime;

//    @TableField(exist = false)
//    private List<EventCleanAreaInfo> areaInfos;

    @TableField(exist = false)
    private EventPlanTaskInfo taskInfo;


    /**
     *  当前经纬度距离该设备的距离
     */
    @TableField(exist = false)
    private Double distance;


}
